<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var arr = [9, 3, 5, 7, 11, 6, 78, 9, 54];

        // 找基准值  始终最后一个元素作为基准值 
        // 准备两个空数组  left  right  比基准值小的放left  比基准值大的放right
        // 把left 基准值  right 连起来   
        
        //直到数组left 和right中数组仅有0个或者1个结束


        function quicksort(arrs){ 
            // 参数数组  返回值 排序好的数组 
            if(arrs.length<=1) return arrs;
            // 找一个基准值  
            var middlevalue = arrs[arrs.length-1];
            // alert(middlevalue)
            //准备两个新数组
            var leftarr=[]; 
            var rightarr=[];
            // 对arrs进行遍历
            // 比middlevalue小的放left 中 比它大的放right中 
            for(var i of arrs){
                if(i<middlevalue){
                    leftarr.push(i);
                }
                else if(i>middlevalue){
                    rightarr.push(i);
                }
            }
            // 对left 和right进行相同的处理   
            // 然后 是 left + middlevalue + right
            // console.log(leftarr,middlevalue,rightarr)
            return quicksort(leftarr).concat(middlevalue,quicksort(rightarr))
        }

        console.log(quicksort(arr));



        
    </script>
</body>
</html>